package com.tmptSource.service.intf;

import com.tmpt.dto.Result;
import com.tmptSource.dto.OwTaskAnswerDto;
import com.tmptSource.dto.OwTaskDto;
import com.tmptSource.dto.PageDto;

import java.util.List;
import java.util.Map;

public interface IOwTaskService {

	public Result<OwTaskDto> addDataAndAssign4DoubleRandom(OwTaskDto owTaskDto);

	public Result<OwTaskDto> pagination(OwTaskDto owTaskDto,PageDto pageDto);

	public Result<OwTaskDto> paginationWithoutLogin(OwTaskDto owTaskDto,PageDto pageDto);

	public Result<OwTaskDto> pagination(OwTaskDto owTaskDto,PageDto pageDto,Map<String,Object> paramMap);

	public Result<OwTaskDto> selectAll();

	public Result<OwTaskDto> selectById(long id);

	public Result<OwTaskDto> addData(OwTaskDto owTaskDto);

	public Result<OwTaskDto> editData(OwTaskDto owTaskDto);

	public Result deleteById(long id,String adminMan);

	/**
	 *页面上查询列的值，动态加载，sql语句读数据库配置而来
	*/
	public java.util.List select4mainManId();
	/**
	 *页面上查询列的值，动态加载，sql语句读数据库配置而来
	*/
	public java.util.List select4assistManId();

	/**
	 * 修改任务状态
	 * @param paramMap
	 * @return
	 */
	public Result updateTaskStatusById(Map<String,Object> paramMap);


	public Result<OwTaskDto> addDataAndAssign(OwTaskDto owTaskDto, Map<String,Object> paramMap);
	public Result assignTaskWF(Map<String,Object> paramMap);
	public Result addGroupUserWF(Map<String,Object> paramMap);
	public Result removeGroupUserWF(Map<String,Object> paramMap);
	public Result<OwTaskDto> queryMyTaskWF(Map<String,Object> paramMap);
	public Result<OwTaskDto> claimTaskWF(OwTaskDto owTaskDto,Map<String,Object> paramMap);
	public Result completeMyTaskWF(Map<String,Object> paramMap);
	public Result<OwTaskDto> queryMyApplyTaskWF(Map<String,Object> paramMap);
	public Result<OwTaskDto> dealMyTaskWF(OwTaskDto owTaskDto,Map<String,Object> paramMap);
	//public Result<OwTaskDto> queryCompletedMyTaskWF(Map<String,Object> paramMap,OwTaskDto owTaskDto,PageDto pageDto);
	public Result<OwTaskAnswerDto> queryCompletedMyTaskWF(Map<String,Object> paramMap,OwTaskDto owTaskDto,PageDto pageDto);
	public Result timer4NoticeWaitingTask(Map<String,Object> paramMap);


	/**
	 * 查询任务认领情况
	 * number_total，一条任务共派给几个人
	 * number_hasReceiveTask，有几条已认领
	 * @return
	 */
	public Result queryClaimTaskNumber(long owTaskId);

	public Result queryTaskListWithoutLogin(OwTaskDto owTaskDto, PageDto pageDto);
}
